package com.abl.common.kit;

/**
 * @author 王永吉
 */
public class StringKit {

    /**
     * 字符串替换填充
     *
     * @param capacity 初始扩容大小（可选配置）
     * @param string   字符串，识别 {} 进行填充
     * @param objs     填充内容数组
     * @return 返回替换并填充后的新字符串
     */
    public static String format(int capacity, String string, Object... objs) {
        String replace = string.replace("{}", "#X#9527#X#");
        String[] split = replace.split("#X#9527#X#");

        StringBuilder stringBuilder = new StringBuilder();

        if (capacity == 0) {
            new StringBuilder((int) (replace.length() * 1.5));
        } else {
            new StringBuilder(capacity);
        }

        for (int i = 0; i < split.length; i++) {
            stringBuilder.append(split[i]);
            if (objs != null && objs.length > i) {
                if (objs[i] != null) {
                    stringBuilder.append(objs[i]);
                } else {
                    stringBuilder.append("NULL");
                }
            }
        }
        return stringBuilder.toString();
    }

    /**
     * 字符串替换填充
     *
     * @param string 字符串，识别 {} 进行填充
     * @param objs   填充内容数组
     * @return 返回替换并填充后的新字符串
     */
    public static String format(String string, Object... objs) {
        return format(0, string, objs);
    }

    public static void formatPrint(String string, Object... objs) {
        System.out.println(format(0, string, objs));
    }

}
